package com.hobbit.analyze.base
{
	/**
	 * URLLoader加载器接口
	 * 
	 */	
	public interface IURLLoader
	{
		/**
		 * 使用 EventDispatcher 对象注册事件侦听器对象，以使侦听器能够接收事件通知。 
		 * @param type 事件的类型。
		 * @param listener 处理事件的侦听器函数。
		 * @param useCapture 确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。
		 * @param priority 事件侦听器的优先级。
		 * @param useWeakReference 确定对侦听器的引用是强引用，还是弱引用。
		 * 
		 */
		function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void;
		
		/**
		 *	从 EventDispatcher 对象中删除侦听器。 
		 * @param type 事件的类型。
		 * @param listener  要删除的侦听器对象。
		 * @param useCapture 指出是为捕获阶段还是为目标和冒泡阶段注册了侦听器。
		 * 
		 */
		function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void;
		/**
		 *	从指定的 URL 发送和加载数据。 
		 * @param url
		 * 
		 */
		function load(url:String):void;
		/**
		 *	关闭进行中的加载操作。 
		 */
		function close():void;
		
		/**
		 * 表示加载操作期间到目前为止加载的字节数。
		 * @return 
		 */
		function get bytesLoaded():uint;
		
		/**
		 *	 表示所下载数据中的字节总数。
		 * @return 
		 */
		function get bytesTotal():uint;
		
		/**
		 *	 从加载操作接收的数据。
		 * @return 
		 */
		function get data():*;
		
		/**
		 * @private
		 */
		function get dataFormat():String;
		
		/**
		 * 控制是以文本 (URLLoaderDataFormat.TEXT)、原始二进制数据 (URLLoaderDataFormat.BINARY) 还是 URL 编码变量 (URLLoaderDataFormat.VARIABLES) 形式接收下载的数据。 
		 * @param value
		 * 
		 */
		function set dataFormat(value:String):void;
	}
}